package Darstellung;

import java.awt.Color;
import java.util.LinkedList;
import java.util.List;

import javax.swing.JPanel;

import Darstellung.Objekte.JObjekt;

public class Spielreflektion extends JPanel {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private List<JObjekt> objekte;

	public Spielreflektion() {
		System.out.print("Darstellung der Spielreflektion wird erstellt..."
				+ "\n");
		this.objekte = new LinkedList<JObjekt>();
		this.setLayout(null);
		this.setSize(400, 400);
		this.setLocation(0, 0);
		this.setBackground(new Color(50, 50, 200, 100));
		System.out.print("Darstellung der Spielreflektion ist fertig!" + "\n");
	}

	public List<JObjekt> getObjekte() {
		return objekte;
	}

	public void addObjekt(JObjekt objekt) {
		if (this.objekte == null) {
			System.out.print("NPE!" + "\n");
			return;
		}
		this.objekte.add(objekt);
		this.add(objekt);
	}

	public void removeObjekt(JObjekt objekt) {
		if (this.objekte == null) {
			System.out.print("NPE!" + "\n");
			return;
		}
		this.objekte.remove(objekt);
		this.remove(objekt);
	}

	public void removeAllObjekte() {
		if (this.objekte == null) {
			System.out.print("NPE!" + "\n");
			return;
		}
		this.objekte.clear();
		this.removeAll();
	}

	public JObjekt getObjekt(int idx) {
		if (this.objekte == null) {
			System.out.print("NPE!" + "\n");
			return null;
		}
		if (idx >= this.objekte.size()) {
			System.out.print("Objekt kann nicht entnommen werden!" + "\n");
			return null;
		}
		return this.objekte.get(idx);
	}
}
